package com.crm.system.service.csd.customerManager;

import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.csd.product.sceneChangeCourse;
import com.crm.model.qo.csd.product.SceneChangeCourseQO;
import com.crm.model.vo.csd.product.*;
import com.crm.model.vo.finishOrderProduct.FinishOrderProductVO;
import com.crm.model.vo.productManager.CustomerMemberProductVO;
import com.crm.model.vo.productManager.CustomerProductVO;

import java.util.List;


/**
 * @author wangpeng
 * @Date 2021/9/8 13:50
 */
public interface ProductExchangeService {
    /**
     * selectProductSceneList
     *       
     * @Author wangpeng
     * @Date 2021/9/9
     * @param pageIndex	
     * @param pageSize	
     * @param sortName	
     * @param sortOrder	
     * @return
     */
    DhPageInfo<sceneChangeCourseVO> selectProductSceneList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder,Integer enableDisable);

    /**
     * selectProductIndustryList
     *       
     * @Author wangpeng
     * @Date 2021/9/9
     * @param pageIndex	
     * @param pageSize	
     * @param sortName	
     * @param sortOrder	
     * @return
     */
    DhPageInfo<industryChangeCourseVO> selectProductIndustryList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder,Integer enableDisable);

    /**
     * selectProductHighClassList
     *       
     * @Author wangpeng
     * @Date 2021/9/9
     * @param pageIndex	
     * @param pageSize	
     * @param sortName	
     * @param sortOrder	
     * @return
     */
    DhPageInfo<highClassChangeCourseVO> selectProductHighClassList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder,Integer enableDisable);

    /**
     * selectProductList
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param pageIndex	
     * @param pageSize	
     * @param sortName	
     * @param sortOrder
     * @param productName	
     * @return
     */
    DhPageInfo<CustomerProductVO> selectProductList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, String productName);

    /**
     * addProductScene
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param sceneParameterDays	
     * @param changeCourseTitle	
     * @param courseProductCode	
     * @return
     */
    Boolean addProductScene(Integer sceneParameterDays, String changeCourseTitle, String courseProductCode,String finishOrderProductNum,String productType,String ruleTitle);

    /**
     * addProductIndustry
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param industryExchangeNumber	
     * @param changeCourseTitle	
     * @param courseProductCode
     * @return
     */
    Boolean addProductIndustry(Integer industryExchangeNumber, String changeCourseTitle, String courseProductCode,String finishOrderProductNum,String productType,String ruleTitle);

    /**
     * addProductHighClass
     *       
     * @Author wangpeng
     * @Date 2021/9/10
     * @param courseProductCode	
     * @param productName
     * @param changeCourseTitle
     * @param productCode
     * @return
     */
    Boolean addProductHighClass(String courseProductCode,String productName, String changeCourseTitle, String productCode,String finishOrderProductNum,String courseOriginalPrice,String productType,String ruleTitle);

    /**
     * updateEnableDisable
     *       
     * @Author wangpeng
     * @Date 2021/9/13
     * @param id
     * @param enableDisable	
     * @return
     */
    Boolean updateEnableDisable(String id, String enableDisable,Integer type);

    /**
     * selectChangeCourseRecord
     * @Author wangpeng
     * @Date 2021/9/26
     * @param pageIndex	
     * @param pageSize	
     * @param sortName	
     * @param sortOrder	
     * @param vo	
     * @return
     */
    DhPageInfo<ChangeCourseRecordVO> selectChangeCourseRecord(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, ChangeCourseRecordVO vo);

    /**
     * selectChangeCourseRecordRuleNumber
     * 查规则编号
     * @Author wangpeng
     * @Date 2021/9/26
     * @param
     * @return
     */
    List<ChangeCourseRecordVO> selectChangeCourseRecordRuleNumber();

    /**
     * selectHighClassExchangeDaysList
     * @Author wangpeng
     * @Date 2021/10/22
     * @param pageIndex	
     * @param pageSize
     * @param sortName
     * @param sortOrder
     * @return
     */
    DhPageInfo<highClassExchangeDaysVO> selectHighClassExchangeDaysList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder,Integer enableDisable);

    Boolean addHighClassExchangeDays(Integer exchangeDays, String productName, String productCode, String finishOrderProductNum,String ruleTitle);

    DhPageInfo<siteExchangeIndustryVO> selectSiteExchangeIndustryList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, Integer enableDisable);

    Boolean addSiteExchangeIndustry(Integer siteDays, Integer industryNumber,String ruleTitle);

    DhPageInfo<industryExchangeSiteVO> selectIndustryExchangeSiteList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, Integer enableDisable);

    Boolean addIndustryExchangeSite(Integer siteDays, Integer industryNumber,String ruleTitle);

    DhPageInfo<CustomerMemberProductVO> selectHighCustomerMemberProductList(Integer pageIndex, Integer pageSize, String sortName, String sortOrder, String productName);
}
